home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 34.zip / BS1 part 34 / GFA basic training.adf / Sound / DIGISPIELEN_4KANAL.LST < prev    next >
File List  |  1989-06-01  |  1KB  |  63 lines

  1. ' Laden und Wiedergabe von vier digitalen Schwingungen
  2. @init
  3. @lesen
  4. @einschalten
  5. ' Warte auf Maustaste
  6. REPEAT
  7. UNTIL MOUSEK=1
  8. ' Ruhe!
  9. @ausschalten
  10. END
  11. '
  12. PROCEDURE init
  13.   DIM sample$(3)
  14.   DIM lÄnge&(3)
  15.   DIM speicheradr%(3)
  16.   DIM frei%(3)
  17. RETURN
  18. PROCEDURE lesen
  19.   FOR i|=0 TO 3
  20.     FILESELECT "Sample laden","Laden",":",sample$(i|)
  21.     IF sample$(i|)="" OR RIGHT$(sample$(i|))=":"
  22.       PRINT "Kein Sample laden ?!?"
  23.       END
  24.     ENDIF
  25.     OPEN "I",#1,sample$(i|)
  26.     lÄnge&(i|)=LOF(#1)
  27.     CLOSE #1
  28.     IF SHR(lÄnge&(i|),1)>65535
  29.       PRINT "Sampledatei zu lang !!"
  30.       END
  31.     ENDIF
  32.     speicheradr%(i|)=MALLOC(lÄnge&(i|),&H2)
  33.     IF speicheradr%(i|)=0
  34.       PRINT "FATAL - Speicher kann nicht reserviert werden!"
  35.       END
  36.     ENDIF
  37.     PRINT "Name:   ";sample$(i|)
  38.     PRINT "Größe:  ";lÄnge&(i|)
  39.     PRINT "Adresse:";HEX$(speicheradr%(i|))
  40.     BLOAD sample$(i|),speicheradr%(i|)
  41.   NEXT i|
  42. RETURN
  43. PROCEDURE einschalten
  44.   ' Wiedergabe auf allen Kanälen
  45.   DPOKE &HDFF096,15                     ! Alle Kanäle stoppen
  46.   FOR i|=0 TO 3
  47.     LONG{(&HDFF0A0+&H10*i|)}=speicheradr%(i|)
  48.     DPOKE (&HDFF0A4+&H10*i|),INT(lÄnge&(i|)/2)
  49.     DPOKE (&HDFF0A6+&H10*i|),100
  50.     DPOKE (&HDFF0A8+&H10*i|),64
  51.   NEXT i|
  52.   DPOKE &HDFF096,&H820F                 ! Alle Kanäle ein
  53. RETURN
  54. PROCEDURE ausschalten
  55.   ' Wiedergabe aus
  56.   DPOKE &HDFF096,15
  57.   FOR i|=0 TO 3
  58.     frei%(i|)=MFREE(speicheradr%(i|),lÄnge&(i|))
  59.     PRINT sample$(i|)
  60.     PRINT "Frei:";frei%(i|)
  61.   NEXT i|
  62. RETURN
  63.